package com.diver.flinkdemo.dto.xxt;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;

/**
 * @Description c40设备接收数据集
 * @author hesc
 * @date 2022-03-10
 */
@Getter
@Setter
@ToString
public class C40DataVO {

    private String msgId;
    /**
     * 设备imei
     */
    private String imei;

    /**
     * 设备指令类型
     */
    private String type;

    /**
     * 是否成功
     */
    private String status;

    /**
     * 下发唯一指令 16进制（传返回，没传为null）
     */
    private String taskId;

    /**
     * 消息发送唯一id
     */
    private String smsUid;

    /**
     * 通话电话号码
     */
    private String callNum;

    /**
     * sos 0=非SOS通话，1=SOS通话
     */
    private Integer callSos;

    /**
     * 通话类型
     * 0 已拨接通，1 已拨未接通，2 已接，3 未接
     */
    private Integer callType;

    /**
     * 通话开始时间
     * 年月日时分秒；20210301174000
     */
    private String callStart;

    /**
     * 通话时长
     */
    private Integer callTime;

    /**
     * 发送手机号(短信代收表字段)
     */
    private String otherCallNum;
    /**
     * 短信内容
     */
    private String shortMsg;
    /**
     * 发送时间
     */
    private String receivedTime;

    /**
     * c40软件设备号
     */
    private String softwareVersion;

    /**
     * 硬件设备号
     */
    private String hardwareVersion;

    /**
     * 附近的wifi
     */
    private String wifiInfos;

    public static C40DataVO convertData(String jsonStr){
        JSONObject jo = JSON.parseObject(jsonStr);
        C40DataVO data = null;
        if(StringUtils.isNotBlank(jo.getString("data"))) {
            data = JSONObject.parseObject(jo.getString("data"), C40DataVO.class);
        } else {
            data = new C40DataVO();
        }
        data.setImei(jo.getString("imei"));
        data.setType(jo.getString("type"));
        data.setTaskId(jo.getString("taskId"));
        data.setStatus(StringUtils.isBlank(jo.getString("status"))  ? "0" : jo.getString("status"));
        return data;
    }
}
